package dominio;
// Generated 5/11/2014 06:32:33 PM by Hibernate Tools 3.2.1.GA


import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * Autor generated by hbm2java
 */
@Entity
@Table(name="autor"
    ,catalog="siscote"
    , uniqueConstraints = @UniqueConstraint(columnNames="Codigo") 
)
public class Autor  implements java.io.Serializable {


     private Integer idAutor;
     private String codigo;
     private String nombre;
     private String apellidoPaterno;
     private String apellidoMaterno;
     private String gradoAcademico;
     private Set<Documento> documentos = new HashSet(0);

    public Autor() {
    }

	
    public Autor(String codigo, String nombre, String apellidoPaterno, String apellidoMaterno, String gradoAcademico) {
        this.codigo = codigo;
        this.nombre = nombre;
        this.apellidoPaterno = apellidoPaterno;
        this.apellidoMaterno = apellidoMaterno;
        this.gradoAcademico = gradoAcademico;
    }
    public Autor(String codigo, String nombre, String apellidoPaterno, String apellidoMaterno, String gradoAcademico, Set documentos) {
       this.codigo = codigo;
       this.nombre = nombre;
       this.apellidoPaterno = apellidoPaterno;
       this.apellidoMaterno = apellidoMaterno;
       this.gradoAcademico = gradoAcademico;
       this.documentos = documentos;
    }
   
     @Id @GeneratedValue(strategy=IDENTITY)
    
    @Column(name="idAutor", unique=true, nullable=false)
    public Integer getIdAutor() {
        return this.idAutor;
    }
    
    public void setIdAutor(Integer idAutor) {
        this.idAutor = idAutor;
    }
    
    @Column(name="Codigo", unique=true, nullable=false, length=45)
    public String getCodigo() {
        return this.codigo;
    }
    
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
    
    @Column(name="Nombre", nullable=false, length=45)
    public String getNombre() {
        return this.nombre;
    }
    
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    
    @Column(name="ApellidoPaterno", nullable=false, length=45)
    public String getApellidoPaterno() {
        return this.apellidoPaterno;
    }
    
    public void setApellidoPaterno(String apellidoPaterno) {
        this.apellidoPaterno = apellidoPaterno;
    }
    
    @Column(name="ApellidoMaterno", nullable=false, length=45)
    public String getApellidoMaterno() {
        return this.apellidoMaterno;
    }
    
    public void setApellidoMaterno(String apellidoMaterno) {
        this.apellidoMaterno = apellidoMaterno;
    }
    
    @Column(name="GradoAcademico", nullable=false, length=45)
    public String getGradoAcademico() {
        return this.gradoAcademico;
    }
    
    public void setGradoAcademico(String gradoAcademico) {
        this.gradoAcademico = gradoAcademico;
    }
@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
    @JoinTable(name="documento_has_autor", catalog="siscote", joinColumns = { 
        @JoinColumn(name="Autor_idAutor", nullable=false, updatable=false) }, inverseJoinColumns = { 
        @JoinColumn(name="Documento_idDocumento", nullable=false, updatable=false) })
    public Set<Documento> getDocumentos() {
        return this.documentos;
    }
    
    public void setDocumentos(Set<Documento> documentos) {
        this.documentos = documentos;
    }




}


